this._currentTimeSecs = TestHarness.timeStrToSecs(timeStr);
}
+ /**
+ * Create `TimeLimitManager`.
+ *
+ * @returns {TimeLimitsManager} the new timeLimitsManager.
+ */
+ createTimeLimitsManager() {
+ return new TimeLimitsManager.TimeLimitsManager(this.mockHistoryFile,
+ this.mockClock,
+ this.mockLoginManagerFactory,
+ this.mockLoginUserFactory,
+ this.mockSettingsFactory);
+ }
+
/**
* Get a mock login manager factory for use in the `TimeLimitsManager` under
* test. This is an object providing a constructor for the objects returned
},
});
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.DISABLED);
harness.expectState('2024-06-01T15:00:00Z', timeLimitsManager, TimeLimitsState.DISABLED);
},
});
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);
harness.addSettingsChangeEvent('2024-06-01T11:00:00Z',
},
});
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);
harness.expectProperties('2024-06-01T13:59:59Z', timeLimitsManager, {
},
});
harness.initializeMockClock('2024-06-01T00:30:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
harness.expectState('2024-06-01T00:30:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);
harness.expectProperties('2024-06-01T01:29:59Z', timeLimitsManager, {
},
});
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);
harness.expectProperties('2024-06-01T13:59:59Z', timeLimitsManager, {
},
});
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);
harness.expectProperties('2024-06-01T15:00:00Z', timeLimitsManager, {
},
});
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
// Run until the limit is reached.
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);
},
]));
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
// The existing history file (above) lists two active periods,
// 07:30–08:00 and 08:30–09:30 that morning. So the user should have
},
]));
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
// The existing history file (above) lists one active period,
// 04:30–08:50 that morning. So the user should have no time left today.
},
}, invalidHistoryFileContents);
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
// The existing history file (above) is invalid or a no-op and
// should be ignored.
},
]));
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
// The existing history file (above) lists two active periods,
// one of which is a long time ago and the other is ‘this’ morning in
},
]));
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
// The existing history file (above) lists one active period,
// 04:30–08:50 that morning IN THE YEAR 3000. This could have resulted
},
]));
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);
harness.addSettingsChangeEvent('2024-06-01T10:00:02Z',
},
]));
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);
harness.expectState('2024-06-01T14:00:01Z', timeLimitsManager, TimeLimitsState.LIMIT_REACHED);
},
});
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
// Use up 2h of the daily limit.
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);
},
});
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
// Use up 2h of the daily limit.
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);
},
});
harness.initializeMockClock('2024-06-01T10:00:00Z');
- const timeLimitsManager = new TimeLimitsManager.TimeLimitsManager(harness.mockHistoryFile, harness.mockClock, harness.mockLoginManagerFactory, harness.mockLoginUserFactory, harness.mockSettingsFactory);
+ const timeLimitsManager = harness.createTimeLimitsManager();
// Use up 2h of the daily limit.
harness.expectState('2024-06-01T10:00:01Z', timeLimitsManager, TimeLimitsState.ACTIVE);